package com.zxy.ziems.server.statistics.converter;

import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Service;

import java.util.Optional;

@Service
public class CacheDataConverter {

    private final ObjectMapper objectMapper = new ObjectMapper();
//    public <T> T convertToJsonObject(Optional<JsonNode> jsonNode, Class<T> targetType) {
//        if (jsonNode.isPresent()) {
//            try {
//                return objectMapper.treeToValue(jsonNode.get(), targetType);
//            } catch (Exception e) {
//                // 处理转换过程中的异常
//                e.printStackTrace();
//                return null;
//            }
//        } else {
//            // 处理空值情况
//            return null;
//        }
//    }
    public <T> T convertToJsonObject(String jsonNode, Class<T> targetType) {
        return JSONObject.parseObject(jsonNode, targetType);
    }

    public <T> Optional<JsonNode> convertToJsonNode(T object) {
        try {
            JsonNode jsonNode = objectMapper.valueToTree(object);
            return Optional.of(jsonNode);
        } catch (Exception e) {
            // 处理转换过程中的异常
            e.printStackTrace();
            return Optional.empty();
        }
    }
}
